{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "# Dynamic factors and coincident indices\n",
    "\n",
    "Factor models generally try to find a small number of unobserved \"factors\" that influence a substantial portion of the variation in a larger number of observed variables, and they are related to dimension-reduction techniques such as principal components analysis. Dynamic factor models explicitly model the transition dynamics of the unobserved factors, and so are often applied to time-series data.\n",
    "\n",
    "Macroeconomic coincident indices are designed to capture the common component of the \"business cycle\"; such a component is assumed to simultaneously affect many macroeconomic variables. Although the estimation and use of coincident indices (for example the [Index of Coincident Economic Indicators](http://www.newyorkfed.org/research/regional_economy/coincident_summary.html)) pre-dates dynamic factor models, in several influential papers Stock and Watson (1989, 1991) used a dynamic factor model to provide a theoretical foundation for them.\n",
    "\n",
    "Below, we follow the treatment found in Kim and Nelson (1999), of the Stock and Watson (1991) model, to formulate a dynamic factor model, estimate its parameters via maximum likelihood, and create a coincident index."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Macroeconomic data\n",
    "\n",
    "The coincident index is created by considering the comovements in four macroeconomic variables (versions of these variables are available on [FRED](https://research.stlouisfed.org/fred2/); the ID of the series used below is given in parentheses):\n",
    "\n",
    "- Industrial production (IPMAN)\n",
    "- Real aggregate income (excluding transfer payments) (W875RX1)\n",
    "- Manufacturing and trade sales (CMRMTSPL)\n",
    "- Employees on non-farm payrolls (PAYEMS)\n",
    "\n",
    "In all cases, the data is at the monthly frequency and has been seasonally adjusted; the time-frame considered is 1972 - 2005."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import statsmodels.api as sm\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "np.set_printoptions(precision=4, suppress=True, linewidth=120)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from pandas_datareader.data import DataReader\n",
    "\n",
    "# Get the datasets from FRED\n",
    "start = '1979-01-01'\n",
    "end = '2014-12-01'\n",
    "indprod = DataReader('IPMAN', 'fred', start=start, end=end)\n",
    "income = DataReader('W875RX1', 'fred', start=start, end=end)\n",
    "sales = DataReader('CMRMTSPL', 'fred', start=start, end=end)\n",
    "emp = DataReader('PAYEMS', 'fred', start=start, end=end)\n",
    "# dta = pd.concat((indprod, income, sales, emp), axis=1)\n",
    "# dta.columns = ['indprod', 'income', 'sales', 'emp']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Note**: in a recent update on FRED (8/12/15) the time series CMRMTSPL was truncated to begin in 1997; this is probably a mistake due to the fact that CMRMTSPL is a spliced series, so the earlier period is from the series HMRMT and the latter period is defined by CMRMT.\n",
    "\n",
    "This has since (02/11/16) been corrected, however the series could also be constructed by hand from HMRMT and CMRMT, as shown below (process taken from the notes in the Alfred xls file)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# HMRMT = DataReader('HMRMT', 'fred', start='1967-01-01', end=end)\n",
    "# CMRMT = DataReader('CMRMT', 'fred', start='1997-01-01', end=end)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# HMRMT_growth = HMRMT.diff() / HMRMT.shift()\n",
    "# sales = pd.Series(np.zeros(emp.shape[0]), index=emp.index)\n",
    "\n",
    "# # Fill in the recent entries (1997 onwards)\n",
    "# sales[CMRMT.index] = CMRMT\n",
    "\n",
    "# # Backfill the previous entries (pre 1997)\n",
    "# idx = sales.loc[:'1997-01-01'].index\n",
    "# for t in range(len(idx)-1, 0, -1):\n",
    "#     month = idx[t]\n",
    "#     prev_month = idx[t-1]\n",
    "#     sales.loc[prev_month] = sales.loc[month] / (1 + HMRMT_growth.loc[prev_month].values)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "dta = pd.concat((indprod, income, sales, emp), axis=1)\n",
    "dta.columns = ['indprod', 'income', 'sales', 'emp']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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KAEUERERERHxEkoARUREREREvIQSQBERERERES+hBFBERERERMRLKAEUERERERHxEkoARUREREREvIQSQBERERERES+hBFBERERERMRLKAEUERERERHxEkoARUREREREvIQSQBERERERES+hBFBERERERMRLKAEUERERERHxEkoARUREREREvIQSQBERERERES/h5+oA6kJ0dLRNTEx0dRgiItIAli1bdtBa29zVcXgK9ZEiIt6huv1jtRJAY0wsMMVaO+ywth7AP621I40x/sBUoBkw0Vr7dl23nSi+xMREUlJSqvMoIiLi4YwxO10dgydRHyki4h2q2z+edAqoMSYS+A8QelibAV4A/Kua7gWWWWuHAFcYY8LroU1ERERERERqoTprACuAq4Hcw9puAeYc9j4ZmFz1+kcgqR7aREREREREpBZOmgBaa3OttTk/vzfGRAE3AM8fdlgosLvqdSYQWw9tRzDGjDXGpBhjUtLT00/2GCIiIiIiIl7vVDaBeRZ4xFpb5swEBSAfCAZygLCq93XddgRr7QRgAkBSUpL99edlZWWkpaVRXFx8Co/oeYKCgoiPj8ff3//kB4uINLB9BftYe3AtZ7U5y9WhNIiGXjtf0/gaSx+pvk9EGoPcb74huGdP/OPiGuR+p5IAngF0rEr++hjz/+zdd3RU1drH8e+eyaT3kEIaIfQmLXRQrh2xoCJYEUSxgAiC0gRBERFRUNErICKiIIoKr4jSlKqh9yqd9N77zH7/SMgFQYFkkknC81nrLjP7tN9BbzbPnLP3VpOBnUBXYCnQEoisgLZrEhUVhZubG2FhYVxQqNZIWmuSk5OJioqibt26to4jhBAXsWgLr215jX2J+/jF7xd8nHxsHalCXePY+YlKqZVKqe+AZ8raprXOvJaMNaGPlL5PCFHdabOZxJkzSZ77GZ6PPEzt11+vlOtecwGotW54/mel1Hqt9WtKqTrASqVUN6ApsJXiVzit2XZN8vLyqnXHdi2UUvj4+CCvwgohqgqtNbsSdvFX6l/8fu53tsZuZUKnCTW++Ctxfuz88gvazo+dv6Pkc3dgdMnPF45/L2vbhePyUUoNAgYBhIaGXhKwJvSR0vcJIaqzotRUYka+QvaWLXj27Yv/mDGVdu2rLgC11t3/qU1rfUYpdRvFT+0maK3NgLXbrll17tiu1fV0r0KIqm/W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\n",
      "text/plain": [
       "<Figure size 1080x432 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "dta.loc[:, 'indprod':'emp'].plot(subplots=True, layout=(2, 2), figsize=(15, 6));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Stock and Watson (1991) report that for their datasets, they could not reject the null hypothesis of a unit root in each series (so the series are integrated), but they did not find strong evidence that the series were co-integrated.\n",
    "\n",
    "As a result, they suggest estimating the model using the first differences (of the logs) of the variables, demeaned and standardized."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Create log-differenced series\n",
    "dta['dln_indprod'] = (np.log(dta.indprod)).diff() * 100\n",
    "dta['dln_income'] = (np.log(dta.income)).diff() * 100\n",
    "dta['dln_sales'] = (np.log(dta.sales)).diff() * 100\n",
    "dta['dln_emp'] = (np.log(dta.emp)).diff() * 100\n",
    "\n",
    "# De-mean and standardize\n",
    "dta['std_indprod'] = (dta['dln_indprod'] - dta['dln_indprod'].mean()) / dta['dln_indprod'].std()\n",
    "dta['std_income'] = (dta['dln_income'] - dta['dln_income'].mean()) / dta['dln_income'].std()\n",
    "dta['std_sales'] = (dta['dln_sales'] - dta['dln_sales'].mean()) / dta['dln_sales'].std()\n",
    "dta['std_emp'] = (dta['dln_emp'] - dta['dln_emp'].mean()) / dta['dln_emp'].std()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dynamic factors\n",
    "\n",
    "A general dynamic factor model is written as:\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "y_t & = \\Lambda f_t + B x_t + u_t \\\\\n",
    "f_t & = A_1 f_{t-1} + \\dots + A_p f_{t-p} + \\eta_t \\qquad \\eta_t \\sim N(0, I)\\\\\n",
    "u_t & = C_1 u_{t-1} + \\dots + C_q u_{t-q} + \\varepsilon_t \\qquad \\varepsilon_t \\sim N(0, \\Sigma)\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "where $y_t$ are observed data, $f_t$ are the unobserved factors (evolving as a vector autoregression), $x_t$ are (optional) exogenous variables, and $u_t$ is the error, or \"idiosyncratic\", process ($u_t$ is also optionally allowed to be autocorrelated). The $\\Lambda$ matrix is often referred to as the matrix of \"factor loadings\". The variance of the factor error term is set to the identity matrix to ensure identification of the unobserved factors.\n",
    "\n",
    "This model can be cast into state space form, and the unobserved factor estimated via the Kalman filter. The likelihood can be evaluated as a byproduct of the filtering recursions, and maximum likelihood estimation used to estimate the parameters."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Model specification\n",
    "\n",
    "The specific dynamic factor model in this application has 1 unobserved factor which is assumed to follow an AR(2) process. The innovations $\\varepsilon_t$ are assumed to be independent (so that $\\Sigma$ is a diagonal matrix) and the error term associated with each equation, $u_{i,t}$ is assumed to follow an independent AR(2) process.\n",
    "\n",
    "Thus the specification considered here is:\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "y_{i,t} & = \\lambda_i f_t + u_{i,t} \\\\\n",
    "u_{i,t} & = c_{i,1} u_{1,t-1} + c_{i,2} u_{i,t-2} + \\varepsilon_{i,t} \\qquad & \\varepsilon_{i,t} \\sim N(0, \\sigma_i^2) \\\\\n",
    "f_t & = a_1 f_{t-1} + a_2 f_{t-2} + \\eta_t \\qquad & \\eta_t \\sim N(0, I)\\\\\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "where $i$ is one of: `[indprod, income, sales, emp ]`.\n",
    "\n",
    "This model can be formulated using the `DynamicFactor` model built-in to statsmodels. In particular, we have the following specification:\n",
    "\n",
    "- `k_factors = 1` - (there is 1 unobserved factor)\n",
    "- `factor_order = 2` - (it follows an AR(2) process)\n",
    "- `error_var = False` - (the errors evolve as independent AR processes rather than jointly as a VAR - note that this is the default option, so it is not specified below)\n",
    "- `error_order = 2` - (the errors are autocorrelated of order 2: i.e. AR(2) processes)\n",
    "- `error_cov_type = 'diagonal'` - (the innovations are uncorrelated; this is again the default)\n",
    "\n",
    "Once the model is created, the parameters can be estimated via maximum likelihood; this is done using the `fit()` method.\n",
    "\n",
    "**Note**: recall that we have demeaned and standardized the data; this will be important in interpreting the results that follow.\n",
    "\n",
    "**Aside**: in their empirical example, Kim and Nelson (1999) actually consider a slightly different model in which the employment variable is allowed to also depend on lagged values of the factor - this model does not fit into the built-in `DynamicFactor` class, but can be accommodated by using a subclass to implement the required new parameters and restrictions - see Appendix A, below."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Parameter estimation\n",
    "\n",
    "Multivariate models can have a relatively large number of parameters, and it may be difficult to escape from local minima to find the maximized likelihood. In an attempt to mitigate this problem, I perform an initial maximization step (from the model-defined starting parameters) using the modified Powell method available in Scipy (see the minimize documentation for more information). The resulting parameters are then used as starting parameters in the standard LBFGS optimization method."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Get the endogenous data\n",
    "endog = dta.loc['1979-02-01':, 'std_indprod':'std_emp']\n",
    "\n",
    "# Create the model\n",
    "mod = sm.tsa.DynamicFactor(endog, k_factors=1, factor_order=2, error_order=2)\n",
    "initial_res = mod.fit(method='powell', disp=False)\n",
    "res = mod.fit(initial_res.params, disp=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Estimates\n",
    "\n",
    "Once the model has been estimated, there are two components that we can use for analysis or inference:\n",
    "\n",
    "- The estimated parameters\n",
    "- The estimated factor"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Parameters\n",
    "\n",
    "The estimated parameters can be helpful in understanding the implications of the model, although in models with a larger number of observed variables and / or unobserved factors they can be difficult to interpret.\n",
    "\n",
    "One reason for this difficulty is due to identification issues between the factor loadings and the unobserved factors. One easy-to-see identification issue is the sign of the loadings and the factors: an equivalent model to the one displayed below would result from reversing the signs of all factor loadings and the unobserved factor.\n",
    "\n",
    "Here, one of the easy-to-interpret implications in this model is the persistence of the unobserved factor: we find that exhibits substantial persistence."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                             Statespace Model Results                                            \n",
      "=================================================================================================================\n",
      "Dep. Variable:     ['std_indprod', 'std_income', 'std_sales', 'std_emp']   No. Observations:                  431\n",
      "Model:                                 DynamicFactor(factors=1, order=2)   Log Likelihood               -2048.709\n",
      "                                                          + AR(2) errors   AIC                           4133.418\n",
      "Date:                                                   Tue, 24 Dec 2019   BIC                           4206.608\n",
      "Time:                                                           15:04:47   HQIC                          4162.316\n",
      "Sample:                                                       02-01-1979                                         \n",
      "                                                            - 12-01-2014                                         \n",
      "Covariance Type:                                                     opg                                         \n",
      "====================================================================================================\n",
      "                                       coef    std err          z      P>|z|      [0.025      0.975]\n",
      "----------------------------------------------------------------------------------------------------\n",
      "loading.f1.std_indprod              -0.8757      0.022    -39.785      0.000      -0.919      -0.833\n",
      "loading.f1.std_income               -0.2553      0.044     -5.819      0.000      -0.341      -0.169\n",
      "loading.f1.std_sales                -0.4965      0.026    -19.076      0.000      -0.548      -0.446\n",
      "loading.f1.std_emp                  -0.2943      0.031     -9.627      0.000      -0.354      -0.234\n",
      "sigma2.std_indprod                   0.0007      0.001      0.943      0.346      -0.001       0.002\n",
      "sigma2.std_income                    0.9072      0.029     31.047      0.000       0.850       0.964\n",
      "sigma2.std_sales                     0.5845      0.033     17.520      0.000       0.519       0.650\n",
      "sigma2.std_emp                       0.3694      0.015     25.062      0.000       0.341       0.398\n",
      "L1.f1.f1                             0.2390      0.038      6.360      0.000       0.165       0.313\n",
      "L2.f1.f1                             0.2970      0.043      6.970      0.000       0.213       0.380\n",
      "L1.e(std_indprod).e(std_indprod)    -1.1542      0.013    -87.757      0.000      -1.180      -1.128\n",
      "L2.e(std_indprod).e(std_indprod)    -0.9873      0.013    -74.546      0.000      -1.013      -0.961\n",
      "L1.e(std_income).e(std_income)      -0.1578      0.021     -7.410      0.000      -0.200      -0.116\n",
      "L2.e(std_income).e(std_income)      -0.0855      0.044     -1.940      0.052      -0.172       0.001\n",
      "L1.e(std_sales).e(std_sales)        -0.4191      0.042    -10.017      0.000      -0.501      -0.337\n",
      "L2.e(std_sales).e(std_sales)        -0.1790      0.049     -3.622      0.000      -0.276      -0.082\n",
      "L1.e(std_emp).e(std_emp)             0.2952      0.033      8.975      0.000       0.231       0.360\n",
      "L2.e(std_emp).e(std_emp)             0.4868      0.028     17.106      0.000       0.431       0.543\n",
      "========================================================================================================\n",
      "Ljung-Box (Q):          53.47, 34.93, 56.91, 69.74   Jarque-Bera (JB):   215.94, 9203.94, 20.33, 3787.16\n",
      "Prob(Q):                    0.08, 0.70, 0.04, 0.00   Prob(JB):                    0.00, 0.00, 0.00, 0.00\n",
      "Heteroskedasticity (H):     0.76, 4.79, 0.48, 0.42   Skew:                       0.08, -0.99, 0.18, 0.75\n",
      "Prob(H) (two-sided):        0.10, 0.00, 0.00, 0.00   Kurtosis:                  6.46, 25.55, 4.00, 17.44\n",
      "========================================================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Covariance matrix calculated using the outer product of gradients (complex-step).\n"
     ]
    }
   ],
   "source": [
    "print(res.summary(separate_params=False))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Estimated factors\n",
    "\n",
    "While it can be useful to plot the unobserved factors, it is less useful here than one might think for two reasons:\n",
    "\n",
    "1. The sign-related identification issue described above.\n",
    "2. Since the data was differenced, the estimated factor explains the variation in the differenced data, not the original data.\n",
    "\n",
    "It is for these reasons that the coincident index is created (see below).\n",
    "\n",
    "With these reservations, the unobserved factor is plotted below, along with the NBER indicators for US recessions. It appears that the factor is successful at picking up some degree of business cycle activity."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 936x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(13,3))\n",
    "\n",
    "# Plot the factor\n",
    "dates = endog.index._mpl_repr()\n",
    "ax.plot(dates, res.factors.filtered[0], label='Factor')\n",
    "ax.legend()\n",
    "\n",
    "# Retrieve and also plot the NBER recession indicators\n",
    "rec = DataReader('USREC', 'fred', start=start, end=end)\n",
    "ylim = ax.get_ylim()\n",
    "ax.fill_between(dates[:-3], ylim[0], ylim[1], rec.values[:-4,0], facecolor='k', alpha=0.1);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Post-estimation\n",
    "\n",
    "Although here we will be able to interpret the results of the model by constructing the coincident index, there is a useful and generic approach for getting a sense for what is being captured by the estimated factor. By taking the estimated factors as given, regressing them (and a constant) each (one at a time) on each of the observed variables, and recording the coefficients of determination ($R^2$ values), we can get a sense of the variables for which each factor explains a substantial portion of the variance and the variables for which it does not.\n",
    "\n",
    "In models with more variables and more factors, this can sometimes lend interpretation to the factors (for example sometimes one factor will load primarily on real variables and another on nominal variables).\n",
    "\n",
    "In this model, with only four endogenous variables and one factor, it is easy to digest a simple table of the $R^2$ values, but in larger models it is not. For this reason, a bar plot is often employed; from the plot we can easily see that the factor explains most of the variation in industrial production index and a large portion of the variation in sales and employment, it is less helpful in explaining income."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x144 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "res.plot_coefficients_of_determination(figsize=(8,2));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Coincident Index\n",
    "\n",
    "As described above, the goal of this model was to create an interpretable series which could be used to understand the current status of the macroeconomy. This is what the coincident index is designed to do. It is constructed below. For readers interested in an explanation of the construction, see Kim and Nelson (1999) or Stock and Watson (1991).\n",
    "\n",
    "In essence, what is done is to reconstruct the mean of the (differenced) factor. We will compare it to the coincident index on published by the Federal Reserve Bank of Philadelphia (USPHCI on FRED)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 936x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "usphci = DataReader('USPHCI', 'fred', start='1979-01-01', end='2014-12-01')['USPHCI']\n",
    "usphci.plot(figsize=(13,3));"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "dusphci = usphci.diff()[1:].values\n",
    "def compute_coincident_index(mod, res):\n",
    "    # Estimate W(1)\n",
    "    spec = res.specification\n",
    "    design = mod.ssm['design']\n",
    "    transition = mod.ssm['transition']\n",
    "    ss_kalman_gain = res.filter_results.kalman_gain[:,:,-1]\n",
    "    k_states = ss_kalman_gain.shape[0]\n",
    "\n",
    "    W1 = np.linalg.inv(np.eye(k_states) - np.dot(\n",
    "        np.eye(k_states) - np.dot(ss_kalman_gain, design),\n",
    "        transition\n",
    "    )).dot(ss_kalman_gain)[0]\n",
    "\n",
    "    # Compute the factor mean vector\n",
    "    factor_mean = np.dot(W1, dta.loc['1972-02-01':, 'dln_indprod':'dln_emp'].mean())\n",
    "    \n",
    "    # Normalize the factors\n",
    "    factor = res.factors.filtered[0]\n",
    "    factor *= np.std(usphci.diff()[1:]) / np.std(factor)\n",
    "\n",
    "    # Compute the coincident index\n",
    "    coincident_index = np.zeros(mod.nobs+1)\n",
    "    # The initial value is arbitrary; here it is set to\n",
    "    # facilitate comparison\n",
    "    coincident_index[0] = usphci.iloc[0] * factor_mean / dusphci.mean()\n",
    "    for t in range(0, mod.nobs):\n",
    "        coincident_index[t+1] = coincident_index[t] + factor[t] + factor_mean\n",
    "    \n",
    "    # Attach dates\n",
    "    coincident_index = pd.Series(coincident_index, index=dta.index).iloc[1:]\n",
    "    \n",
    "    # Normalize to use the same base year as USPHCI\n",
    "    coincident_index *= (usphci.loc['1992-07-01'] / coincident_index.loc['1992-07-01'])\n",
    "    \n",
    "    return coincident_index"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Below we plot the calculated coincident index along with the US recessions and the comparison coincident index USPHCI."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 936x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(13,3))\n",
    "\n",
    "# Compute the index\n",
    "coincident_index = compute_coincident_index(mod, res)\n",
    "\n",
    "# Plot the factor\n",
    "dates = endog.index._mpl_repr()\n",
    "ax.plot(dates, coincident_index, label='Coincident index')\n",
    "ax.plot(usphci.index._mpl_repr(), usphci, label='USPHCI')\n",
    "ax.legend(loc='lower right')\n",
    "\n",
    "# Retrieve and also plot the NBER recession indicators\n",
    "ylim = ax.get_ylim()\n",
    "ax.fill_between(dates[:-3], ylim[0], ylim[1], rec.values[:-4,0], facecolor='k', alpha=0.1);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Appendix 1: Extending the dynamic factor model\n",
    "\n",
    "Recall that the previous specification was described by:\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "y_{i,t} & = \\lambda_i f_t + u_{i,t} \\\\\n",
    "u_{i,t} & = c_{i,1} u_{1,t-1} + c_{i,2} u_{i,t-2} + \\varepsilon_{i,t} \\qquad & \\varepsilon_{i,t} \\sim N(0, \\sigma_i^2) \\\\\n",
    "f_t & = a_1 f_{t-1} + a_2 f_{t-2} + \\eta_t \\qquad & \\eta_t \\sim N(0, I)\\\\\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "Written in state space form, the previous specification of the model had the following observation equation:\n",
    "\n",
    "$$\n",
    "\\begin{bmatrix}\n",
    "y_{\\text{indprod}, t} \\\\\n",
    "y_{\\text{income}, t} \\\\\n",
    "y_{\\text{sales}, t} \\\\\n",
    "y_{\\text{emp}, t} \\\\\n",
    "\\end{bmatrix} = \\begin{bmatrix}\n",
    "\\lambda_\\text{indprod} & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "\\lambda_\\text{income}  & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "\\lambda_\\text{sales}   & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "\\lambda_\\text{emp}     & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\\n",
    "\\end{bmatrix}\n",
    "\\begin{bmatrix}\n",
    "f_t \\\\\n",
    "f_{t-1} \\\\\n",
    "u_{\\text{indprod}, t} \\\\\n",
    "u_{\\text{income}, t} \\\\\n",
    "u_{\\text{sales}, t} \\\\\n",
    "u_{\\text{emp}, t} \\\\\n",
    "u_{\\text{indprod}, t-1} \\\\\n",
    "u_{\\text{income}, t-1} \\\\\n",
    "u_{\\text{sales}, t-1} \\\\\n",
    "u_{\\text{emp}, t-1} \\\\\n",
    "\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "and transition equation:\n",
    "\n",
    "$$\n",
    "\\begin{bmatrix}\n",
    "f_t \\\\\n",
    "f_{t-1} \\\\\n",
    "u_{\\text{indprod}, t} \\\\\n",
    "u_{\\text{income}, t} \\\\\n",
    "u_{\\text{sales}, t} \\\\\n",
    "u_{\\text{emp}, t} \\\\\n",
    "u_{\\text{indprod}, t-1} \\\\\n",
    "u_{\\text{income}, t-1} \\\\\n",
    "u_{\\text{sales}, t-1} \\\\\n",
    "u_{\\text{emp}, t-1} \\\\\n",
    "\\end{bmatrix} = \\begin{bmatrix}\n",
    "a_1 & a_2 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "1   & 0   & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & c_{\\text{indprod}, 1} & 0 & 0 & 0 & c_{\\text{indprod}, 2} & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & c_{\\text{income}, 1} & 0 & 0 & 0 & c_{\\text{income}, 2} & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & c_{\\text{sales}, 1} & 0 & 0 & 0 & c_{\\text{sales}, 2} & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 0 & c_{\\text{emp}, 1} & 0 & 0 & 0 & c_{\\text{emp}, 2} \\\\\n",
    "0   & 0   & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\\n",
    "\\end{bmatrix} \n",
    "\\begin{bmatrix}\n",
    "f_{t-1} \\\\\n",
    "f_{t-2} \\\\\n",
    "u_{\\text{indprod}, t-1} \\\\\n",
    "u_{\\text{income}, t-1} \\\\\n",
    "u_{\\text{sales}, t-1} \\\\\n",
    "u_{\\text{emp}, t-1} \\\\\n",
    "u_{\\text{indprod}, t-2} \\\\\n",
    "u_{\\text{income}, t-2} \\\\\n",
    "u_{\\text{sales}, t-2} \\\\\n",
    "u_{\\text{emp}, t-2} \\\\\n",
    "\\end{bmatrix}\n",
    "+ R \\begin{bmatrix}\n",
    "\\eta_t \\\\\n",
    "\\varepsilon_{t}\n",
    "\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "the `DynamicFactor` model handles setting up the state space representation and, in the `DynamicFactor.update` method, it fills in the fitted parameter values into the appropriate locations."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The extended specification is the same as in the previous example, except that we also want to allow employment to depend on lagged values of the factor. This creates a change to the $y_{\\text{emp},t}$ equation. Now we have:\n",
    "\n",
    "$$\n",
    "\\begin{align}\n",
    "y_{i,t} & = \\lambda_i f_t + u_{i,t} \\qquad & i \\in \\{\\text{indprod}, \\text{income}, \\text{sales} \\}\\\\\n",
    "y_{i,t} & = \\lambda_{i,0} f_t + \\lambda_{i,1} f_{t-1} + \\lambda_{i,2} f_{t-2} + \\lambda_{i,2} f_{t-3} + u_{i,t} \\qquad & i = \\text{emp} \\\\\n",
    "u_{i,t} & = c_{i,1} u_{i,t-1} + c_{i,2} u_{i,t-2} + \\varepsilon_{i,t} \\qquad & \\varepsilon_{i,t} \\sim N(0, \\sigma_i^2) \\\\\n",
    "f_t & = a_1 f_{t-1} + a_2 f_{t-2} + \\eta_t \\qquad & \\eta_t \\sim N(0, I)\\\\\n",
    "\\end{align}\n",
    "$$\n",
    "\n",
    "Now, the corresponding observation equation should look like the following:\n",
    "\n",
    "$$\n",
    "\\begin{bmatrix}\n",
    "y_{\\text{indprod}, t} \\\\\n",
    "y_{\\text{income}, t} \\\\\n",
    "y_{\\text{sales}, t} \\\\\n",
    "y_{\\text{emp}, t} \\\\\n",
    "\\end{bmatrix} = \\begin{bmatrix}\n",
    "\\lambda_\\text{indprod} & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "\\lambda_\\text{income}  & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "\\lambda_\\text{sales}   & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "\\lambda_\\text{emp,1}   & \\lambda_\\text{emp,2} & \\lambda_\\text{emp,3} & \\lambda_\\text{emp,4} & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\\n",
    "\\end{bmatrix}\n",
    "\\begin{bmatrix}\n",
    "f_t \\\\\n",
    "f_{t-1} \\\\\n",
    "f_{t-2} \\\\\n",
    "f_{t-3} \\\\\n",
    "u_{\\text{indprod}, t} \\\\\n",
    "u_{\\text{income}, t} \\\\\n",
    "u_{\\text{sales}, t} \\\\\n",
    "u_{\\text{emp}, t} \\\\\n",
    "u_{\\text{indprod}, t-1} \\\\\n",
    "u_{\\text{income}, t-1} \\\\\n",
    "u_{\\text{sales}, t-1} \\\\\n",
    "u_{\\text{emp}, t-1} \\\\\n",
    "\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "Notice that we have introduced two new state variables, $f_{t-2}$ and $f_{t-3}$, which means we need to update the  transition equation:\n",
    "\n",
    "$$\n",
    "\\begin{bmatrix}\n",
    "f_t \\\\\n",
    "f_{t-1} \\\\\n",
    "f_{t-2} \\\\\n",
    "f_{t-3} \\\\\n",
    "u_{\\text{indprod}, t} \\\\\n",
    "u_{\\text{income}, t} \\\\\n",
    "u_{\\text{sales}, t} \\\\\n",
    "u_{\\text{emp}, t} \\\\\n",
    "u_{\\text{indprod}, t-1} \\\\\n",
    "u_{\\text{income}, t-1} \\\\\n",
    "u_{\\text{sales}, t-1} \\\\\n",
    "u_{\\text{emp}, t-1} \\\\\n",
    "\\end{bmatrix} = \\begin{bmatrix}\n",
    "a_1 & a_2 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "1   & 0   & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 1   & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & c_{\\text{indprod}, 1} & 0 & 0 & 0 & c_{\\text{indprod}, 2} & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 0 & c_{\\text{income}, 1} & 0 & 0 & 0 & c_{\\text{income}, 2} & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 0 & 0 & c_{\\text{sales}, 1} & 0 & 0 & 0 & c_{\\text{sales}, 2} & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 0 & 0 & 0 & c_{\\text{emp}, 1} & 0 & 0 & 0 & c_{\\text{emp}, 2} \\\\\n",
    "0   & 0   & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "0   & 0   & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\\n",
    "\\end{bmatrix} \n",
    "\\begin{bmatrix}\n",
    "f_{t-1} \\\\\n",
    "f_{t-2} \\\\\n",
    "f_{t-3} \\\\\n",
    "f_{t-4} \\\\\n",
    "u_{\\text{indprod}, t-1} \\\\\n",
    "u_{\\text{income}, t-1} \\\\\n",
    "u_{\\text{sales}, t-1} \\\\\n",
    "u_{\\text{emp}, t-1} \\\\\n",
    "u_{\\text{indprod}, t-2} \\\\\n",
    "u_{\\text{income}, t-2} \\\\\n",
    "u_{\\text{sales}, t-2} \\\\\n",
    "u_{\\text{emp}, t-2} \\\\\n",
    "\\end{bmatrix}\n",
    "+ R \\begin{bmatrix}\n",
    "\\eta_t \\\\\n",
    "\\varepsilon_{t}\n",
    "\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "This model cannot be handled out-of-the-box by the `DynamicFactor` class, but it can be handled by creating a subclass when alters the state space representation in the appropriate way."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First, notice that if we had set `factor_order = 4`, we would almost have what we wanted. In that case, the last line of the observation equation would be:\n",
    "\n",
    "$$\n",
    "\\begin{bmatrix}\n",
    "\\vdots \\\\\n",
    "y_{\\text{emp}, t} \\\\\n",
    "\\end{bmatrix} = \\begin{bmatrix}\n",
    "\\vdots &  &  &  &  &  &  &  &  &  &  & \\vdots \\\\\n",
    "\\lambda_\\text{emp,1}   & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\\\\n",
    "\\end{bmatrix}\n",
    "\\begin{bmatrix}\n",
    "f_t \\\\\n",
    "f_{t-1} \\\\\n",
    "f_{t-2} \\\\\n",
    "f_{t-3} \\\\\n",
    "\\vdots\n",
    "\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "\n",
    "and the first line of the transition equation would be:\n",
    "\n",
    "$$\n",
    "\\begin{bmatrix}\n",
    "f_t \\\\\n",
    "\\vdots\n",
    "\\end{bmatrix} = \\begin{bmatrix}\n",
    "a_1 & a_2 & a_3 & a_4 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\\\\n",
    "\\vdots &  &  &  &  &  &  &  &  &  &  & \\vdots \\\\\n",
    "\\end{bmatrix} \n",
    "\\begin{bmatrix}\n",
    "f_{t-1} \\\\\n",
    "f_{t-2} \\\\\n",
    "f_{t-3} \\\\\n",
    "f_{t-4} \\\\\n",
    "\\vdots\n",
    "\\end{bmatrix}\n",
    "+ R \\begin{bmatrix}\n",
    "\\eta_t \\\\\n",
    "\\varepsilon_{t}\n",
    "\\end{bmatrix}\n",
    "$$\n",
    "\n",
    "Relative to what we want, we have the following differences:\n",
    "\n",
    "1. In the above situation, the $\\lambda_{\\text{emp}, j}$ are forced to be zero for $j > 0$, and we want them to be estimated as parameters.\n",
    "2. We only want the factor to transition according to an AR(2), but under the above situation it is an AR(4).\n",
    "\n",
    "Our strategy will be to subclass `DynamicFactor`, and let it do most of the work (setting up the state space representation, etc.) where it assumes that `factor_order = 4`. The only things we will actually do in the subclass will be to fix those two issues.\n",
    "\n",
    "First, here is the full code of the subclass; it is discussed below. It is important to note at the outset that none of the methods defined below could have been omitted. In fact, the methods `__init__`, `start_params`, `param_names`, `transform_params`, `untransform_params`, and `update` form the core of all state space models in statsmodels, not just the `DynamicFactor` class."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "from statsmodels.tsa.statespace import tools\n",
    "class ExtendedDFM(sm.tsa.DynamicFactor):\n",
    "    def __init__(self, endog, **kwargs):\n",
    "            # Setup the model as if we had a factor order of 4\n",
    "            super(ExtendedDFM, self).__init__(\n",
    "                endog, k_factors=1, factor_order=4, error_order=2,\n",
    "                **kwargs)\n",
    "\n",
    "            # Note: `self.parameters` is an ordered dict with the\n",
    "            # keys corresponding to parameter types, and the values\n",
    "            # the number of parameters of that type.\n",
    "            # Add the new parameters\n",
    "            self.parameters['new_loadings'] = 3\n",
    "\n",
    "            # Cache a slice for the location of the 4 factor AR\n",
    "            # parameters (a_1, ..., a_4) in the full parameter vector\n",
    "            offset = (self.parameters['factor_loadings'] +\n",
    "                      self.parameters['exog'] +\n",
    "                      self.parameters['error_cov'])\n",
    "            self._params_factor_ar = np.s_[offset:offset+2]\n",
    "            self._params_factor_zero = np.s_[offset+2:offset+4]\n",
    "\n",
    "    @property\n",
    "    def start_params(self):\n",
    "        # Add three new loading parameters to the end of the parameter\n",
    "        # vector, initialized to zeros (for simplicity; they could\n",
    "        # be initialized any way you like)\n",
    "        return np.r_[super(ExtendedDFM, self).start_params, 0, 0, 0]\n",
    "    \n",
    "    @property\n",
    "    def param_names(self):\n",
    "        # Add the corresponding names for the new loading parameters\n",
    "        #  (the name can be anything you like)\n",
    "        return super(ExtendedDFM, self).param_names + [\n",
    "            'loading.L%d.f1.%s' % (i, self.endog_names[3]) for i in range(1,4)]\n",
    "\n",
    "    def transform_params(self, unconstrained):\n",
    "            # Perform the typical DFM transformation (w/o the new parameters)\n",
    "            constrained = super(ExtendedDFM, self).transform_params(\n",
    "            unconstrained[:-3])\n",
    "\n",
    "            # Redo the factor AR constraint, since we only want an AR(2),\n",
    "            # and the previous constraint was for an AR(4)\n",
    "            ar_params = unconstrained[self._params_factor_ar]\n",
    "            constrained[self._params_factor_ar] = (\n",
    "                tools.constrain_stationary_univariate(ar_params))\n",
    "\n",
    "            # Return all the parameters\n",
    "            return np.r_[constrained, unconstrained[-3:]]\n",
    "\n",
    "    def untransform_params(self, constrained):\n",
    "            # Perform the typical DFM untransformation (w/o the new parameters)\n",
    "            unconstrained = super(ExtendedDFM, self).untransform_params(\n",
    "                constrained[:-3])\n",
    "\n",
    "            # Redo the factor AR unconstrained, since we only want an AR(2),\n",
    "            # and the previous unconstrained was for an AR(4)\n",
    "            ar_params = constrained[self._params_factor_ar]\n",
    "            unconstrained[self._params_factor_ar] = (\n",
    "                tools.unconstrain_stationary_univariate(ar_params))\n",
    "\n",
    "            # Return all the parameters\n",
    "            return np.r_[unconstrained, constrained[-3:]]\n",
    "\n",
    "    def update(self, params, transformed=True, **kwargs):\n",
    "        # Peform the transformation, if required\n",
    "        if not transformed:\n",
    "            params = self.transform_params(params)\n",
    "        params[self._params_factor_zero] = 0\n",
    "        \n",
    "        # Now perform the usual DFM update, but exclude our new parameters\n",
    "        super(ExtendedDFM, self).update(params[:-3], transformed=True, **kwargs)\n",
    "\n",
    "        # Finally, set our new parameters in the design matrix\n",
    "        self.ssm['design', 3, 1:4] = params[-3:]\n",
    "        "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So what did we just do?\n",
    "\n",
    "**`__init__`**\n",
    "\n",
    "The important step here was specifying the base dynamic factor model which we were operating with. In particular, as described above, we initialize with `factor_order=4`, even though we will only end up with an AR(2) model for the factor. We also performed some general setup-related tasks.\n",
    "\n",
    "**`start_params`**\n",
    "\n",
    "`start_params` are used as initial values in the optimizer. Since we are adding three new parameters, we need to pass those in. If we had not done this, the optimizer would use the default starting values, which would be three elements short.\n",
    "\n",
    "**`param_names`**\n",
    "\n",
    "`param_names` are used in a variety of places, but especially in the results class. Below we get a full result summary, which is only possible when all the parameters have associated names.\n",
    "\n",
    "**`transform_params`** and **`untransform_params`**\n",
    "\n",
    "The optimizer selects possibly parameter values in an unconstrained way. That's not usually desired (since variances cannot be negative, for example), and `transform_params` is used to transform the unconstrained values used by the optimizer to constrained values appropriate to the model. Variances terms are typically squared (to force them to be positive), and AR lag coefficients are often constrained to lead to a stationary model. `untransform_params` is used for the reverse operation (and is important because starting parameters are usually specified in terms of values appropriate to the model, and we need to convert them to parameters appropriate to the optimizer before we can begin the optimization routine).\n",
    "\n",
    "Even though we do not need to transform or untransform our new parameters (the loadings can in theory take on any values), we still need to modify this function for two reasons:\n",
    "\n",
    "1. The version in the `DynamicFactor` class is expecting 3 fewer parameters than we have now. At a minimum, we need to handle the three new parameters.\n",
    "2. The version in the `DynamicFactor` class constrains the factor lag coefficients to be stationary as though it was an AR(4) model. Since we actually have an AR(2) model, we need to re-do the constraint. We also set the last two autoregressive coefficients to be zero here.\n",
    "\n",
    "**`update`**\n",
    "\n",
    "The most important reason we need to specify a new `update` method is because we have three new parameters that we need to place into the state space formulation. In particular we let the parent `DynamicFactor.update` class handle placing all the parameters except the three new ones in to the state space representation, and then we put the last three in manually."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Optimization terminated successfully.\n",
      "         Current function value: 4.698591\n",
      "         Iterations: 259\n",
      "         Function evaluations: 446\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                                             Statespace Model Results                                            \n",
      "=================================================================================================================\n",
      "Dep. Variable:     ['std_indprod', 'std_income', 'std_sales', 'std_emp']   No. Observations:                  431\n",
      "Model:                                 DynamicFactor(factors=1, order=4)   Log Likelihood               -2025.093\n",
      "                                                          + AR(2) errors   AIC                           4096.186\n",
      "Date:                                                   Tue, 24 Dec 2019   BIC                           4189.706\n",
      "Time:                                                           15:05:15   HQIC                          4133.111\n",
      "Sample:                                                       02-01-1979                                         \n",
      "                                                            - 12-01-2014                                         \n",
      "Covariance Type:                                                     opg                                         \n",
      "====================================================================================================\n",
      "                                       coef    std err          z      P>|z|      [0.025      0.975]\n",
      "----------------------------------------------------------------------------------------------------\n",
      "loading.f1.std_indprod              -0.6890      0.036    -19.096      0.000      -0.760      -0.618\n",
      "loading.f1.std_income               -0.2584      0.038     -6.722      0.000      -0.334      -0.183\n",
      "loading.f1.std_sales                -0.4390      0.024    -18.551      0.000      -0.485      -0.393\n",
      "loading.f1.std_emp                  -0.4168      0.039    -10.759      0.000      -0.493      -0.341\n",
      "sigma2.std_indprod                   0.2455      0.046      5.318      0.000       0.155       0.336\n",
      "sigma2.std_income                    0.8737      0.030     29.561      0.000       0.816       0.932\n",
      "sigma2.std_sales                     0.5346      0.034     15.532      0.000       0.467       0.602\n",
      "sigma2.std_emp                       0.2530      0.024     10.498      0.000       0.206       0.300\n",
      "L1.f1.f1                             0.3047      0.059      5.172      0.000       0.189       0.420\n",
      "L2.f1.f1                             0.3767      0.062      6.078      0.000       0.255       0.498\n",
      "L3.f1.f1                                  0   1.14e-09          0      1.000   -2.24e-09    2.24e-09\n",
      "L4.f1.f1                                  0   1.14e-09          0      1.000   -2.24e-09    2.24e-09\n",
      "L1.e(std_indprod).e(std_indprod)    -0.3202      0.113     -2.828      0.005      -0.542      -0.098\n",
      "L2.e(std_indprod).e(std_indprod)    -0.2252      0.090     -2.495      0.013      -0.402      -0.048\n",
      "L1.e(std_income).e(std_income)      -0.1730      0.022     -7.837      0.000      -0.216      -0.130\n",
      "L2.e(std_income).e(std_income)      -0.0936      0.044     -2.119      0.034      -0.180      -0.007\n",
      "L1.e(std_sales).e(std_sales)        -0.4895      0.046    -10.601      0.000      -0.580      -0.399\n",
      "L2.e(std_sales).e(std_sales)        -0.2268      0.050     -4.540      0.000      -0.325      -0.129\n",
      "L1.e(std_emp).e(std_emp)             0.2341      0.042      5.530      0.000       0.151       0.317\n",
      "L2.e(std_emp).e(std_emp)             0.4956      0.051      9.766      0.000       0.396       0.595\n",
      "loading.L1.f1.std_emp               -0.0724      0.038     -1.895      0.058      -0.147       0.002\n",
      "loading.L2.f1.std_emp                0.0003      0.036      0.009      0.993      -0.071       0.071\n",
      "loading.L3.f1.std_emp               -0.1739      0.028     -6.168      0.000      -0.229      -0.119\n",
      "========================================================================================================\n",
      "Ljung-Box (Q):          59.19, 34.27, 68.30, 61.67   Jarque-Bera (JB):   231.73, 9687.98, 25.32, 3386.90\n",
      "Prob(Q):                    0.03, 0.73, 0.00, 0.02   Prob(JB):                    0.00, 0.00, 0.00, 0.00\n",
      "Heteroskedasticity (H):     0.76, 5.03, 0.44, 0.45   Skew:                       0.22, -0.97, 0.24, 0.75\n",
      "Prob(H) (two-sided):        0.11, 0.00, 0.00, 0.00   Kurtosis:                  6.56, 26.15, 4.08, 16.65\n",
      "========================================================================================================\n",
      "\n",
      "Warnings:\n",
      "[1] Covariance matrix calculated using the outer product of gradients (complex-step).\n",
      "[2] Covariance matrix is singular or near-singular, with condition number 4.48e+17. Standard errors may be unstable.\n"
     ]
    }
   ],
   "source": [
    "# Create the model\n",
    "extended_mod = ExtendedDFM(endog)\n",
    "initial_extended_res = extended_mod.fit(maxiter=1000, disp=False)\n",
    "extended_res = extended_mod.fit(initial_extended_res.params, method='nm', maxiter=1000)\n",
    "print(extended_res.summary(separate_params=False))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Although this model increases the likelihood, it is not preferred by the AIC and BIC measures which penalize the additional three parameters.\n",
    "\n",
    "Furthermore, the qualitative results are unchanged, as we can see from the updated $R^2$ chart and the new coincident index, both of which are practically identical to the previous results."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x144 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "extended_res.plot_coefficients_of_determination(figsize=(8,2));"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 936x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, ax = plt.subplots(figsize=(13,3))\n",
    "\n",
    "# Compute the index\n",
    "extended_coincident_index = compute_coincident_index(extended_mod, extended_res)\n",
    "\n",
    "# Plot the factor\n",
    "dates = endog.index._mpl_repr()\n",
    "ax.plot(dates, coincident_index, '-', linewidth=1, label='Basic model')\n",
    "ax.plot(dates, extended_coincident_index, '--', linewidth=3, label='Extended model')\n",
    "ax.plot(usphci.index._mpl_repr(), usphci, label='USPHCI')\n",
    "ax.legend(loc='lower right')\n",
    "ax.set(title='Coincident indices, comparison')\n",
    "\n",
    "# Retrieve and also plot the NBER recession indicators\n",
    "ylim = ax.get_ylim()\n",
    "ax.fill_between(dates[:-3], ylim[0], ylim[1], rec.values[:-4,0], facecolor='k', alpha=0.1);"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
